<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>
<body>
    <script>
    
        function fun() {
            //callee 使用函数的 arguments访问，callee表示当前函数的引用
            console.log(arguments.callee);

            //它可以用于引用该函数的函数体内当前正在执行的函数
            //arguments.callee 里面装有 当前函数的地址，叫做引用，通过这个地址可以找到 当前函数            
        }
        //arguments.callee 这个属性多用于 递归中
        fun();

        //.caller 可以判断 当前执行的函数 是在哪一个函数内部调用的
        function fun2 (){
            console.log(fun2.caller);            
        }
        
        function zxyi() {
            fun2();
        }

        zxyi();
        /*
        zxyi() {
            fun2();
        }

        表示 fun2 这个函数 是在 zxyi这个函数中调用的

        注意：
        非标准
        该特性是非标准，请尽量不要在生产环境中使用它！
        */
    </script>
</body>
</html>